package com.ecode.sample.event;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service;

/**
 * @author wqh
 * @date 2022年07月30日 23:19
 */
@Slf4j
@Service
@RequiredArgsConstructor
public class EventService {

    /** 注入ApplicationContext用来发布事件 */
    private final ApplicationContext applicationContext;

    /**
     * 下单
     *
     * @param msg 发送消息
     */
    public String pushMsg(String msg) {
        long start = System.currentTimeMillis();

        // 短信通知（异步处理）
        applicationContext.publishEvent(new MsgEvent(msg));

        long end = System.currentTimeMillis();
        log.info("任务全部完成，总耗时：({})毫秒", end - start);
        return "购买成功";
    }
}
